﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace TestImport.Model.DatabaseRepositories
{
    public abstract partial class DatabaseRepository
    {
        /**************************/
        /* LeerlingBoekBestelling */
        /**************************/

        public DataTable LeerlingBoekBestelling_GetData()
        {
            return defaultExecuteReaderDataTable(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking FROM LeerlingBoekBestelling");
        }

        public DataTable LeerlingBoekBestelling_GetDataByLeerlingID(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, boeklijstItemID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, rekeningID, rekeningRetourID, isbnNr FROM LeerlingBoekBestelling WHERE (leerlingID = @leerlingID)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_GetDataByNogGeenRekeningRetour(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT leerlingBoekID, boekID, leerlingID, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, rekeningID, rekeningRetourID, boeklijstItemID, status, categorieCode, huurboek, schoolPrijs, huurPrijs FROM LeerlingBoekBestelling WHERE (rekeningRetourID IS NULL) AND (leerlingID = @leerlingID) AND (status = 3)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_GetNogTeFactureren(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT leerlingBoekID, boekID, leerlingID, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, rekeningID, rekeningRetourID, boeklijstItemID, status, categorieCode, huurboek, schoolPrijs, huurPrijs FROM LeerlingBoekBestelling WHERE (rekeningID IS NULL) AND (leerlingID = @leerlingID) AND (status < 3)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_GetDataByRekeningID(int rekeningID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@rekeningID", rekeningID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking FROM LeerlingBoekBestelling WHERE (rekeningID = @rekeningID)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_GetDataByRekeningRetourID(int rekeningID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@rekeningID", rekeningID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking FROM LeerlingBoekBestelling WHERE (rekeningRetourID = @rekeningID)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

    }
}
